It is known to back-up data stored on primary storage, such as a hard disk, of a computer system in order to protect against a disaster that might otherwise irrecoverably destroy all or part of the data. Disasters for example may be fire, flood, computer virus or simply accidental deletion of data. One of the main reasons for using magnetic tape as the back-up storage medium is that it provides a stable, reliable and relatively cheap option for storing large volumes of backed-up data.
Back-up application software which executes on the computer system typically provides the functions for enabling such computer system data to be both backed-up to, and restored from, tape media, which is written to and read from a tape drive. Well-known back-up application software includes ‘Replica™’ from Stac, ‘ArcServe™’ from Computer Associates, ‘Back-upExec™’ from Veritas and ‘Omniback™’ from HP. Well-known tape drives include DDS™ and LTO™ compliant tape drives, both available from HP.
In the event of a disaster, such as hard disk failure or even system destruction, typically, a priority is to rebuild a working system as soon as possible. This requires the computer hardware to be restored to the same state as it was before the disaster, which can take hours or even days, even before the file system can be restored. Generally, a significant amount of human intervention is required to complete this process.
In order to reduce the time and human intervention overhead of restoring a computer system after a disaster a back-up application software provides a so-called disaster recovery (DR) solution, which enables a computer system to be restored in an expedited manner to a state which existed before a disaster occurred. Such a scheme typically involves at least installing and configuring a minimal operating system, tape drivers and the back-up application software (or the requisite parts thereof) itself.
Known DR solutions typically required a user to generate a set of DR floppy disks. The DR floppy disks could be used to boot the computer system, when it is not possible to boot from the hard disk drive, and execute application software for recovering a backed-up copy of the file system from tape media. The DR floppy disks typically load and execute a minimal version of the operating system along with components of application software comprising DR functionality, thus providing sufficient functionality, for example, for the computer to build new disk partitions, access a tape drive and restore the data from tape media.
The DR operating system is required to reflect the exact hardware configuration of the computer system on which it is to be installed, otherwise it would not be possible to communicate with storage devices such as tape drives.
Typically, therefore, DR floppy disks need to be regenerated by a user whenever the system hardware configuration changes, and particularly when a SCSI (Small Computer Systems Interface) configuration changes. For example, if a new SCSI Host Bus Adaptor (HBA) is added to a server, with a respective new device driver, this device driver needs to be added to the DR floppy disks so that the new SCSI HBA is recognized when rebuilding the computer system.
A reason why DR floppy disks are/were used is that a floppy disk drive is one of the standard ‘initial program load devices’ (IPLD), which practically every PC is configured to ‘boot’ from. Herein, ‘standard’ as applied to an IPLD, implies that the PC is physically programmed to recognise the device for the purposes of booting. Currently, other standard IPLDs, sometimes known as BAIDS (BIOS Aware Initial Program Load Devices), include the first hard disk drive in a PC and, more recently, the first CD-ROM drive in a PC. Generally, however, an IPLD can be virtually any device that has the ability to load and execute a PC operating system.
It is known to boot from a CD-ROM drive, as long as the CD-ROM complies with the ISO 9660 CD-ROM standard, as extended by the ‘El Torito’ Bootable CD-ROM Format Specification, Version 1.0, Jan. 25, 1995, which is created jointly by IBM Corporation and Phoenix Technologies Ltd and which is entirely incorporated by reference herein. Booting from CD-ROM in a similar manner is also considered in detail in U.S. Pat. No. 5,727,213 which is entirely incorporated by reference herein. As described, to boot from CD-ROM, a PC's BIOS (basic input/output system) needs to specifically support reading boot record data from a CD-ROM, typically, as well as from a floppy disk or hard disk. U.S. Pat. No. 5,727,213 also proposes that tape media may also serve as a boot source, subject to the PC BIOS being modified to detect and read boot record data from a tape media. To date, however, PC BIOS standards do not support booting from tape media.
In a system which is bootable from a CD-ROM, U.S. Pat. No. 5,727,213 specifies that, to read boot record data from a CD-ROM, read commands directed to the floppy disk drive need to be re-directed to the CD-ROM drive during a read data part of the boot process. In addition, a modified SCSI driver of the PC needs to convert the 512 byte sectors conventionally used by hard disk and floppy disk into 2 Kbytes sectors conventionally used by a CD-ROM drive.
In view of the possibility of booting from CD-ROM, it would obviously also be possible to generate one or more DR CD-ROMs to replace the DR floppy disks. However, there would be little advantage in adopting this approach, and a significant cost increase. In particular, it would still be onerous for the user to have to generate, maintain and keep safe the DR CD-ROMs.
U.S. Pat. No. 6,701,450, which is entirely incorporated herein by reference, discloses a tape drive configured to operate as a bootable device for a PC. The tape drive has a first mode in which it operates as a normal tape drive, and a second mode in which it emulates a bootable CD-ROM drive. Bootable data is stored on tape media for access by the tape drive in emulation mode. U.S. patent application number 2002-0163760-A1, which is entirely incorporated herein by reference, shows a somewhat similar type of tape drive.
FIG. 1 shows a block diagram of such a prior art tape drive being coupled to a PC. The PC 100 is either a MS-DOS based machine, or a Windows NT or Windows 95/98 machine.
The tape drive 140 is, for example, a well-known DDS (Digital Data Storage) tape drive, DLT (Digital Linear Tape) tape drive or other device for transferring data to tape.
As shown in FIG. 1, the PC 100 includes a CPU 105 (Central Processing Unit), which is in communication, via a bus 110, with ROM 115 (Read Only Memory), RAM 120 (Random Access Memory) and an I/O (Input/Output) subsystem 125.
The I/O subsystem 125 connects the PC 100 to a number of storage devices, namely, a floppy disk drive 135 and, via a SCSI HBA 128, a hard disk drive 130 and the tape drive 140. The hard disk drive 130 and floppy disk drive 135 are represented as internal devices of the PC 100, whereas the tape drive 140 is represented as an external device, in this arrangement, although it could alternatively be an internal device.
In practice, the bus 110 may comprise multiple busses and respective bus subsystems; for example, host bus, PCI bus, EISA bus, or another bus type or switched interconnect.
As also shown in FIG. 1, a typical tape drive 140 includes a host interface 145 coupled to port 146 for controlling transfer of data between the tape drive 140 and the PC 100. Control signals received from the PC 100 are passed to a controller 150, which controls the operation of all components of the tape drive 140. The controller 150 typically consists of a microprocessor, for example a Motorola 68000 series microprocessor, a micro-controller (as illustrated in the present embodiment) controlled by firmware stored in ROM 185, or an ASIC (Application Specific Integrated Circuit).
For a data back-up operation, in response to receipt by the host interface 145 of data write signals from the PC, the controller 150 controls the tape drive 140 to write data to tape, comprising the steps: the host interface 145 receiving data from the PC 100 and passing it to the formatter 155; the formatter formatting the data, for example by compressing the data and adding error correction and detection codes, and storing the formatted data in a buffer 160, comprising, for example, a bank of 8 Mbytes of RAM; when appropriate (for example, when the buffer is nearly full), a read/write block reading the formatted data from the buffer 160 and converting the data into electrical signals suitable for driving magnetic read/write heads 170, which write the data to tape media of tape cartridge 175 in known fashion.
The tape cartridge 175 is mounted in a tape mechanism 180, which loads and ejects the tape cartridge 175 and winds the tape media forwards or backwards as required for reading and writing data. In a DDS tape drive, the read/write heads 170 are mounted on a helical scanning drum, which rotates to sweep the heads past the tape in a motion oblique to the direction of travel of the tape.
For a data restore operation, in response to read signals received by the host interface 145 from the PC 100, the controller 150 controls the tape drive to return the data to the PC 100, comprising the steps: the heads 170 reading data signals from the tape media; the read/write block 165 converting the signals into digital data representation and storing the data in the buffer 160; the formatter 155 reading the data from the buffer 160, processing the data to remove errors and decompressing the data to be passed on to the host interface 145; and the host interface returned the data to the PC 100.
The host interface 145, formatter 155 and read/write blocks typically each comprise one or more appropriately programmed ASICs.
PC 100 communicates with the tape drive 140 using one of the well-known standard SCSI protocols, such as SCS12. Accordingly, the host interface 145 comprises an appropriate SCSI adaptor. Alternatively, other protocols such as EIDE or Fibre Channel, could be used. The tape drive 140 has firmware 185, which controls the operation of the tape drive.
The firmware 185 may be modified by writing a new set of instructions to the existing ROM (if the ROM is an EEPROM) using a standard firmware update process, which is well known and will, thus, not be described herein. Alternatively, the ROM may simply be replaced with one containing the new instructions. In this way, it is a relatively simple process to modify the behaviour of a standard tape drive 140.
Firmware 185 provides both a ‘Normal Mode’ of operation, in which the tape drive 140 behaves as a tape drive 140, and a ‘DR Mode’ of operation, in which the tape drive 140 is arranged to emulate a CD-ROM drive. The CD-ROM drive emulation is achieved in part by configuring the tape drive 140 to identify itself to the PC 100 as a CD-ROM drive and also by modifying a SCSI command set in the tape drive 140 to emulate the SCSI command set of a CD-ROM drive. With the ability to emulate a CD-ROM drive, the tape drive 140 can act as an IPLD, without the need to modify existing PC BIOS standards, PC hardware or PC operating systems.
Whether the tape drive 140 operates in Normal Mode or DR Mode is determined by user selection. The user selection of mode may be performed without the need for any additional tape drive hardware, by using the tape drive Eject button; if the tape drive 140 is powered on the Eject button held down, the DR Mode of operation is selected, otherwise the Normal Mode is selected. Alternatively the tape drive may have an extra selection button for activation of the DR Mode. As a further alternative an external mode choice command is entered into the tape drive, e.g. a SCSI mode select command.
This selection function is achieved by the tape drive's firmware 185 which checks the status of the Eject button during a power-on self-tests sequence. Alternatively, DR Mode can be selected by holding the Eject button down for a long time period (such as five seconds), when the tape drive 140 is already powered on, by the firmware 185 which checks the length of the period the Eject button is held down to determine whether the operation is an eject or the user selecting DR Mode. Various other means for selecting mode could be employed, for example by providing a specific DR button or switch on the tape drive 140.
FIG. 2 illustrates the steps involved in setting the tape drive of FIG. 1 into ‘DR Mode’ and booting the PC from the tape drive.
In step 500, a user initiates DR Mode in the tape drive 140 by holding down the Eject button when the power is switched on. As a result, the tape drive 140 displays an appropriate signal on the front panel (not shown) of the tape drive; for example, by setting one or more front panel LEDs to flash or generating a graphical message on an LCD display. The tape drive 140 then continues as follows.
In step 505, the tape drive 140 determines whether tape cartridge 175 is present in the tape drive 140 in normal fashion, and generates an appropriate warning signal to the user if not, in step 510. While waiting for the media to be loaded and while checking the media for DR capability, the tape drive 140 is arranged to respond to a Test Unit Ready command from the PC 100 by returning ‘CHECK CONDITION’, with sense key ‘NOT READY’ (0x02) and extended sense ‘LOADING’ (0x0401). This in fact may be a false response, which is intended to trick the BIOS into waiting for the tape to load (if it has not done so already), which can take up to thirty seconds after being inserted into the tape drive after power-on.
In this case, if a true response were returned before a tape had been loaded (a true response including extended sense ‘MEDIA NOT LOADED’), the BIOS would move straight on from the tape drive in an attempt to find a different IPLD. In other words, DR would not work. The false response causes the BIOS to wait at least 60 seconds before timing out after waiting for the tape drive (which is emulating a CD-ROM drive) to read the first block. This time is sufficient for the tape cartridge to be inserted, loaded and checked for DR capability. The ability to generate a false response is a key requirement of tape drive operation when the tape drive 140 is an ‘internal’ tape drive, which shares the power of the PC. In the absence of this feature, it is highly likely that than ‘internal’ tape drive would not be able to provide the DR Mode. Obviously, the feature is not such an issue with an ‘external’ tape drive, which has its own power supply and can be switched on and prepared in advance of switching the PC on.
If, or once, tape cartridge 175 is loaded by the user, in step 515, the firmware 185 controls the tape drive 140 to check to see if the tape cartridge 175 is a valid DR tape cartridge. This is achieved by rewinding the tape media, reading from the beginning of the tape media and searching for an appropriate Boot System Identifier entry in a Boot Record Volume Description of a CD-ROM image.
If the tape cartridge 175 is found to be a DR cartridge then, in step 525, the tape drive 140 switches to DR Mode by enabling the appropriate CD-ROM SCSI command set and displaying an appropriate DR Mode signal on the front panel. Otherwise, in step 520, the tape drive 140 ejects the tape cartridge 175 and another appropriate warning signal is provided via the front panel display, in step 510.
The tape drive 140 remains in ‘DR Mode’ until one of the following conditions are met: tape drive 140 is power cycled; back-up application software sends a DR Mode page command to disable DR Mode; user manually ejects the loaded DR capable media; or, the tape drive 140 receives a SCSI bus rest after 100 CD-ROM blocks or more have been read while in DR Mode.
When exiting ‘DR Mode’, the emulated CD-ROM SCSI commands are disabled and the tape drive 140 reverts to Normal Mode; the tape drive 140 then appears to be in the same state as it had just been powered on.
In step 530, the PC 100 is booted and carried out the steps defined by the BIOS program, as described above. In particular, in step 535, the PC 100 searches for an IPLD, which contains a bootable file system. The typical BIOS boot sequence is:                1. search for a floppy disk drive containing a bootable floppy disk—if found, then attempt to boot from this, otherwise        2. search for a CD-ROM drive containing bootable CD-ROM media—if found, then attempt to boot from this, otherwise        3. if no bootable floppy disk or CD-ROM drive is found, then attempt to boot from hard disk drive.        
Assuming no other IPLDs containing bootable data are found, the PC 100 accesses the tape drive 140, in step 540, and issues a SCSI ‘INQUIRY’. In response, in step 545, the tape drive 140, operating in DR Mode, returns a Standard Inquiry Data CDB (Control Data Block) having a Peripheral Device Type value of 5 (CD-ROM device type) rather than 1 (tape drive device type), which identifies the tape drive 140 as a CD-ROM drive. Then, in step 550, the PC 100 reads the beginning of the CD-ROM image from the tape drive 140 to check for bootable CD-ROM file system, and, when returned by the tape drive 140 in step 555, the PC 100 designates the tape drive 140 as the boot path in step 560. This means that the PC 100 will boot from the CD-ROM image in the tape drive 140 path, even if there are other, real CD-ROM drive devices present in the system (as long as they do not contain a bootable CD-ROM). The only other requirement for the DR operation to function is that the PC BIOS, or SCSI host adaptor BIOS, supports bootable CD-ROM drives (which is typically the case in all modern SCSI host adaptor cards or motherboard chipsets).
In step 565, the PC 100 reads the CD-ROM image, which is returned by the tape drive 140 in step 570. The operating system files are read directly into RAM 120 and are executed by the CPU 105 in order to configure the PC, including to be able to access a tape drive 140. The back-up application software files are read and stored on the hard disk, form where they can be executed.
Next, in step 575, the PC 100 executes the back-up application software for DR and issues a SCSI Mode Select command that accesses the DR Mode page of the tape drive to terminate DR Mode and begin Normal Mode, to continue with normal tape drive operation.
In step 580, the tape drive 140 reverts to Normal Mode, the buffer 160 is purged and the tape media is allowed to be physically accessed by standard tape drive commands (i.e. Locate, Space, Read, etc). This allows the PC's recovery to proceed as if it had initially booted from DR floppy disk.
Finally, in step 585, the PC 100 continues to retrieve from the tape drive 140 the backed-up data set stored on tape cartridge 175 until the whole PC 100 file system is restored to hard disk drive 130. Thereafter, the re-built PC 100 can boot from the hard disk drive 130 as normal.
US patent application number 2005-0120166-A1 (now U.S. Pat. No. 7,415,570), which is incorporated herein by reference, discloses a tape drive having a first port for communicating with the tape drive in tape drive mode, and a second port for communicating with the tape drive in an optical storage device mode, for example CD-ROM mode, the second port enabling an external device to access the emulation apparatus. Thus, for disaster recovery purposes, it is not necessary to switch the tape drive into disaster recovery mode. Again, bootable data is stored on tape media for access by the tape drive.